import {httpPost,httpGet,httpPut,httpDelete} from "@/services/http"
type int = number;
		type List<T> = Array<T>
		type Collection<T> = Array<T>
		
type JsonNode = any
type long = number
export interface BlindDateDTO {
  /** 预约时长 */
  bespeakDuration?: string
  /** 预约结束时段 */
  endTime?: string
  /** 预约ID或者订单ID */
  kid?: string
  /** 预约开始时段 */
  startTime?: string
  /** 被预约用户ID */
  targetUserId?: string
  /** 被预约人手机号 */
  targetUserPhone?: string
  /** 预约人手机号 */
  userPhone?: string
}

export interface RenewBlindDateDTO {
  /** 续费时长 */
  bespeakDuration?: string
  /** 预约ID或者订单ID */
  kid?: string
}

export interface DeviceRegisterDto {
  /** 应用标示（app/cooperation) */
  appId?: string
  /** 设备标示 */
  deviceId?: string
  /** 设备类型（ANDROID/IOS/MAC-OS） */
  deviceType?: string
  /** 操作系统 */
  osType?: string
  /** 注册ID */
  registerId?: string
  /** 注册标示 */
  registerToken?: string
}

export interface CommonWordReply {
  /** 创建时间 */
  createDate?: string
  /** 分布式唯一ID */
  kid?: string
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 回复语 */
  reply?: string
  /** 常用语id */
  wordKid?: string
}

export interface CommonWord {
  /** 创建时间 */
  createDate?: string
  /** 创建人ID */
  createUserId?: string
  /** 删除标记0未删除1已删除 */
  delFlag?: number
  /** 是否是招呼语 0不是 1是 */
  greetingFlag?: number
  /** 分布式唯一ID */
  kid?: string
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 最后修改人ID */
  lastUpdateUserId?: string
  /** 回复语数量 */
  replyCount?: number
  /** 使用范围1寻芳觅缘 */
  scope?: number
  /** 排序 */
  sortNo?: number
  /** 内容 */
  word?: string
  /** 1正常0不显示 */
  wordStatus?: number
}

export interface PageList<T> {
  /** 数据总条数，前端接口可忽略改字段 */
  count?: string
  /** 数据集合 */
  entities?: T[]
  /** 当前页码 */
  pageNo?: number
  /** 每页条数 */
  pageSize?: number
}

export interface BatchPushMessageResp {
  /** 批量消息的KID */
  kids?: number[]
  /** 服务器时间戳 */
  timestamp?: string
}

export interface BatchPushMessageReq {
  channelCode?: string
  fromAccount?: string
  fromAccountName?: string
  fromType?: string
  fromVisible?: number
  payload?: ChatMessagePayload
  sessionType?: string
  toType?: string
  toUserList?: SimpleUserInfo[]
  toVisible?: number
}

export interface ChatMessagePayload {
  attach?: string
  body?: string
  ext?: string
  messageId?: string
  messageType?: string
}

export interface SimpleUserInfo {
  /** 用户ID */
  userId?: string
  /** 用户昵称 */
  userName?: string
}

export interface ChatMessageWrapper {
  channelCode?: string
  cooperationId?: string
  fromAccount?: string
  fromAccountName?: string
  fromType?: string
  fromVisible?: number
  kid?: string
  /** 消息发送完成后是否需要立即关闭会话 */
  needCloseSession?: boolean
  payload?: ChatMessagePayload
  sessionId?: string
  sessionType?: string
  /** -1撤回，0未读，1已读 */
  state?: number
  timestamp?: string
  toAccount?: string
  toAccountName?: string
  toType?: string
  toVisible?: number
  userId?: string
}

export interface PullMessageResp {
  hasMore?: boolean
  messages?: ChatMessageWrapper[]
}

export interface PullMessageReq {
  cursorIndex?: string
  includeMine?: boolean
  sessionId?: string
  sessionType?: string
}

export interface PushMessageResp {
  /** 消息的KID */
  kid?: string
  /** 服务器时间戳 */
  timestamp?: string
}

export interface PushMessageReq {
  channelCode?: string
  fromAccount?: string
  fromAccountName?: string
  fromType?: string
  fromVisible?: number
  payload?: ChatMessagePayload
  sessionType?: string
  toAccount?: string
  toAccountName?: string
  toType?: string
  toVisible?: number
}

export interface ChatSessionWrapper {
  incr?: boolean
  sessionArray?: SessionStatus[]
  sessionTotalCount?: string
  statusLogKid?: string
}

export interface SessionStatus {
  actionType?: string
  message?: ChatMessageWrapper
  relationAccount?: ChatUserAccountWrapper
  session?: ImSessionStatus
  targetAccount?: ChatUserAccountWrapper
  unAckCount?: string
}

export interface ChatUserAccountWrapper {
  avatar?: string
  favorite?: boolean
  proxyNimAccount?: string
  userAccount?: string
  userName?: string
  userPhone?: string
}

export interface ImSessionStatus {
  /** 当前服务人员ID */
  adminUserId?: string
  /** 当前服务人员类型 */
  adminUserType?: string
  /** 会话批次 */
  batchNo?: string
  /** 渠道 */
  channelCode?: string
  /** 创建时间 */
  createDate?: string
  /** 创建人ID */
  createUserId?: string
  /** 备注 */
  description?: string
  /** 扩展内容 */
  ext?: string
  /** 发送者可见标示(0不可见，1可见) */
  fromVisible?: number
  /** 分布式唯一ID */
  kid?: string
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 最后修改人ID */
  lastUpdateUserId?: string
  /** 会话标示 */
  latestLogKid?: string
  /** 中间关系绑定ID */
  relationId?: string
  /** 中间关系绑定类型 */
  relationType?: string
  /** 会话标示 */
  sessionId?: string
  /** 会话类型 */
  sessionType?: string
  /** 状态 1创建,2变更,3暂停,4关闭 */
  state?: number
  /** 会话标签 */
  tags?: string
  /** 目标可见标示(0可见，1不可见) */
  toVisible?: number
  /** 用户ID */
  userId?: string
  /** 用户名称 */
  userName?: string
}

export interface HolidayNoWorkTip {
  display?: boolean
  tip?: string
}

export interface ApnsPushCountUpdateDTO {
  /** 要更新的消息值 */
  count?: number
  /** 设备唯一id */
  deviceId?: string
}

export interface VisibleMessageReq {
  messageKids?: number[]
  sessionId?: string
  sessionType?: string
}

export interface UndoMessageResp {
  req?: UndoMessageReq
  undoCount?: string
}

export interface UndoMessageReq {
  fromType?: string
  messageKid?: string
  sessionId?: string
  sessionType?: string
  toType?: string
}

export interface DeviceRegisterBindDto {
  /** 应用标示（app/cooperation) */
  appId?: string
  /** 设备标示 */
  deviceId?: string
  /** 设备类型（ANDROID/IOS/MAC-OS） */
  deviceType?: string
  /** 操作系统 */
  osType?: string
  /** 注册ID */
  registerId?: string
  /** 注册标示 */
  registerToken?: string
  /** 用户ID */
  userId?: string
  /** 用户类型 */
  userType?: string
}

export interface BlackUserRequest {
  /** 黑名单用户id */
  blackUserId?: string
  /** 黑名单用户昵称 */
  blackUserName?: string
}

export interface ImUserBlack {
  /** 创建时间 */
  createDate?: string
  /** 创建人ID */
  createUserId?: string
  /** 删除标识 1已删除 0未删除 */
  delFlag?: number
  /** 分布式唯一ID */
  kid?: string
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 最后修改人ID */
  lastUpdateUserId?: string
  /** 会话ID */
  sessionId?: string
  /** 被拉黑用户id */
  toUserId?: string
  /** 被拉黑用户名称 */
  toUserName?: string
  /** 用户ID */
  userId?: string
}

export interface LiveActivityResult {
  /** 视频咨询直播活动 */
  activityInfo?: LiveActivityInfo
  /** 视频直播用户信息 */
  guestUser?: UserResult
  /** 视频直播预约用户信息 */
  hostUser?: UserResult
  /** 用户直播TOKEN */
  userToken?: TokenResult
}

export interface LiveActivityInfo {
  /** 接听人应用类型 */
  appId?: string
  /** 预约结束时段 */
  appointmentEndTime?: string
  /** 预约开始时段 */
  appointmentStartTime?: string
  /** 预约时长 */
  bespeakDuration?: string
  /** 预约ID */
  bespeakId?: string
  /** 预约类型 1-预约视频 2-即时视频 */
  bespeakType?: number
  /** 直播间播流流地址https */
  boardUrl?: string
  /** 创建时间 */
  createDate?: string
  /** 接听人设备类型 */
  devType?: string
  /** 关闭类型 1被预约用户关闭 2预约用户关闭 3通话自动结束 4平台关闭 */
  endType?: number
  /** 唯一ID */
  kid?: string
  /** 通话状态 0:待通话，1:通话中 2:通话关闭，3：预约嘉宾进入，4：被预约嘉宾进入 */
  liveStatus?: number
  /** 直播类型 1阿里云 2腾讯云 */
  liveType?: number
  /** 接听奖励金额(分) */
  memberAwardAmount?: string
  /** 仅登录小程序标识 */
  miniFlag?: number
  /** 直播间分发ID */
  mpuTaskId?: string
  /** 房间号 */
  roomId?: string
  /** 直播间视频流地址rtmp */
  streamUrl?: string
  /** 被预约用户ID */
  toUserId?: string
  /** 用户ID */
  userId?: string
  /** 通话时长 */
  videoDuration?: string
}

export interface UserResult {
  /** 开播房间ID */
  activityId?: string
  /** 年龄 */
  age?: number
  /** 生日（出生年月） */
  birthday?: string
  /** 相亲类型 1:本人 2:代子女相亲 3:代朋友相亲 4:其他 */
  blindType?: number
  /** 教育背景 1:中专及以下 2:高中 3:大专 4:本科 5:硕士 6：博士及以上 */
  educationBackground?: number
  /** 唯一ID */
  kid?: string
  /** 月收入 1:5K以下 2:5K-1W 3:1W-2W 4:2W-3W 5:3W-5W 6:5W以上 */
  monthlyProfile?: number
  /** 用户昵称 */
  nickName?: string
  /** 职业 1:公务员 2:企事业单位 3:私营业主 4:高级管理 5:仓储/物流/运输 6:生产/加工/制造 7:建筑/房地产 8:餐饮/旅游 9:销售/市场 10:公关/商务 11:医疗/美容/保健 12:金融/证券/投资/保险 13:教育/培训 14:计算机/互联网/IT 15:财会/审计 16:法律 17:在校学生 18:其他；19：老师；20：医生；21：护士；22：军人；23:成功人士；24：白领；25：工程师；26：模特；27：行政；28：自由职业；29：退休 */
  occupation?: number
  /** 房间号 */
  roomId?: string
  /** 用户角色，0：普通用户，1：预约用户， 100：超管 ，1000：超超管 */
  tokenRole?: number
  /** 开播时间戳 */
  tokenTime?: string
  /** 用户性别 1：男 2：女 */
  userGender?: number
  /** 业务用户ID */
  userId?: string
  /** 用户头像 */
  userImg?: string
  /** 工作地址 */
  workAddress?: string
  /** 工作地址 */
  workAddressName?: string
}

export interface TokenResult {
  /** 开播房间ID */
  activityId?: string
  /** 应用ID */
  appId?: string
  /** 预约ID */
  bespeakId?: string
  /** 相亲类型 1:本人 2:代子女相亲 3:代朋友相亲 4:其他 */
  blindType?: number
  /** gslb地址 */
  gslb?: string
  /** 直播类型 1阿里云 2腾讯云 */
  liveType?: number
  /** 用户昵称 */
  nickName?: string
  /** nonce随机数 */
  nonce?: string
  /** 开播状态，0 待就绪，1,已入座 */
  openStatus?: number
  /** 房间号 */
  roomId?: string
  /** 鉴权token值 */
  token?: string
  /** 用户角色，1：普通用户，2：预约用户 */
  tokenRole?: number
  /** 开播时间戳 */
  tokenTime?: string
  /** 时间戳 */
  tokenTimestamp?: string
  /** 业务用户ID */
  userId?: string
  /** 用户头像 */
  userImg?: string
}

export interface LiveInviteResult {
  /** 视频咨询直播活动 */
  activityInfo?: LiveActivityInfo
  /** 视频直播发送消息用户信息 */
  fromUser?: UserResult
  /** 视频直播接收用户信息 */
  toUser?: UserResult
}

export interface LiveSimpleVO {
  /** 预约ID */
  bespeakId?: string
  /** 唯一ID */
  kid?: string
  /** 视频状态：0-不在视频中，1-与他人视频中 2-与自己视频中-自己下单 3-与自己视频中-对方下单 */
  liveType?: number
}

export interface LiveReconnectResult {
  /** 用户重连咨询室对象 */
  activityResult?: LiveActivityResult
  /** 用户重连类型 ，-1 没有重连房间，1：普通用户，2：预约用户，100超管重连，4.1000号重连 */
  reconnectType?: number
}

export interface LiveTip {
  /** 通话提示 */
  content?: string
  /** 创建时间 */
  createDate?: string
  /** 创建人ID */
  createUserId?: string
  /** 删除标识 1已删除 0未删除 */
  delFlag?: number
  /** 分布式唯一ID */
  kid?: string
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 最后修改人ID */
  lastUpdateUserId?: string
}

export interface OnlineSearchDTO {
  /** 性别 1:男 2:女 */
  gender?: number
  /** 页码 */
  pageNo?: number
  /** 每页条数 */
  pageSize?: number
  /** 城市code */
  province?: string
}

export interface LinkedHashMap<T,T1> {
}
export default {
  liveActivitys: {
    /**
    * 预约通过创建直播间
    */
    createBespeakActivity(blindDateDTO: BlindDateDTO): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/live-activitys/action/createBespeakActivity`, blindDateDTO).then((res:any) => res.data.data)
    },
    /**
    * 即时视频购买成功创建直播间
    */
    createImmediatelyActivity(blindDateDTO: BlindDateDTO): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/live-activitys/action/createImmediatelyActivity`, blindDateDTO).then((res:any) => res.data.data)
    },
    /**
    * 是否有开过直播间
    */
    openFlag(params: { bespeakId: string }): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/live-activitys/action/openFlag`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 即时视频续费
    */
    renewImmediatelyActivity(renewBlindDateDTO: RenewBlindDateDTO): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/live-activitys/action/renewImmediatelyActivity`, renewBlindDateDTO).then((res:any) => res.data.data)
    },
    /**
    * 直播间举报
    */
    userReport(params: { activityId: string, reportKid: string }): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/live-activitys/action/user-report`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 用户进入视频通话并获取Token
    */
    createNormalToken(params: { bespeakId: string }): Promise<LiveActivityResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/createNormalToken`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 发送通话邀约
    */
    createRoom(params: { bespeakId: string }): Promise<LiveInviteResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/createRoom`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 用户退出视频问咨询室
    */
    exitRoom(params: { activityId: string }): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/exit-room`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 小程序查询已关闭直播间信息
    */
    getEndType(params: { bespeakId: string }): Promise<LiveActivityInfo> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/getEndType`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 小程序查询是否有待进入实时通话
    */
    openLiveQuery(): Promise<LiveInviteResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/openLiveQuery`).then((res:any) => res.data.data)
    },
    /**
    * 小程序查询预约通话状态 0:待通话，1:通话中 2:通话关闭，3：预约嘉宾进入，4：被预约嘉宾进入
    */
    openStatusQuery(params: { bespeakId: string }): Promise<number> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/openStatusQuery`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 通话详细信息
    */
    queryRoomDetail(params: { activityId: string }): Promise<LiveActivityResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/query-room-detail`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 根据用户ID查询与用户见面的人,返回null表示无视频的用户ID
    */
    queryTargetUserId(params: { queryUserId: string }): Promise<number> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/queryTargetUserId`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 根据用户ID查询与用户见面的人,返回null表示无视频的人
    */
    queryTargetUserLive(params: { queryUserId: string }): Promise<LiveSimpleVO> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/queryTargetUserLive`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 根据用户ID查询用户是否在视频见面中，true 视频见面中，false 不在视频见面中
    */
    userQuery(params: { hostUserId: string }): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/user-query`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 重连视频咨询咨询室
    */
    userReconnect(): Promise<LiveReconnectResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/user-reconnect`).then((res:any) => res.data.data)
    },
    /**
    * 用户开始通话，确认开始startTask推流
    */
    userToSeat(params: { bespeakId: string, isReconnect: number }): Promise<LiveActivityResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/user-to-seat`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 用户接受/拒绝邀请
    */
    userAgree(params: { agreeType?: string, bespeakId: string }): Promise<LiveInviteResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/userAgree`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 取消通话邀约
    */
    userCancel(params: { bespeakId: string }): Promise<LiveInviteResult> {
      return httpGet(`/platform-im/v1.0/pt/live-activitys/action/userCancel`,  {...params} ).then((res:any) => res.data.data)
    },
  },
  healths: {
    /**
    * 健康检查
    */
    check(): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/pb/healths/action/check`).then((res:any) => res.data.data)
    },
  },
  imDeviceRegister: {
    /**
    * 设备注册
    */
    register(registerDto: DeviceRegisterDto): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pb/im-device-register/action/register`, registerDto).then((res:any) => res.data.data)
    },
    /**
    * 设备绑定
    */
    bind(bindDto: DeviceRegisterBindDto): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/im-device-register/action/bind`, bindDto).then((res:any) => res.data.data)
    },
    /**
    * 设备解绑
    */
    unbind(bindDto: DeviceRegisterDto): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/im-device-register/action/unbind`, bindDto).then((res:any) => res.data.data)
    },
  },
  commonWords: {
    /**
    * APP端查询通用语回复选项列表
    */
    getWordReply(params: { wordKid?: string }): Promise<List<CommonWordReply>> {
      return httpGet(`/platform-im/v1.0/pt/common-words/action/getWordReply`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 查询招呼语信息
    */
    greetingWord(): Promise<CommonWord> {
      return httpGet(`/platform-im/v1.0/pt/common-words/action/greeting-word`).then((res:any) => res.data.data)
    },
    /**
    * APP端查询分页数据
    */
    listPage(params: { pageNo?: number, pageSize?: number, scope?: number }): Promise<PageList<CommonWord>> {
      return httpGet(`/platform-im/v1.0/pt/common-words/action/list-page`,  {...params} ).then((res:any) => res.data.data)
    },
  },
  customerApp: {
    /**
    * 批量发送消息
    */
    batchPushMessage(body: BatchPushMessageReq): Promise<BatchPushMessageResp> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/batch-push-message`, body).then((res:any) => res.data.data)
    },
    /**
    * 会话历史消息
    */
    historyMessage(params: { cursorIndex?: string, headerIndex?: string, pageSize?: number, sessionId: string, sessionType: string }): Promise<List<ChatMessageWrapper>> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/historyMessage`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 用户拉取消息
    */
    pullMessage(body: PullMessageReq): Promise<PullMessageResp> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/pullMessage`, body).then((res:any) => res.data.data)
    },
    /**
    * 发送消息
    */
    pushMessage(body: PushMessageReq): Promise<PushMessageResp> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/pushMessage`, body).then((res:any) => res.data.data)
    },
    /**
    * 查询会话是否可以对话状态 1:可以发消息，0：不能发消息
    */
    sessionTalkStatus(params: { sessionId: string }): Promise<number> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/session-talk-status`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 会话状态全量加载
    */
    sessionAllLoad(params: { pageNo?: number, pageSize?: number, userType: string }): Promise<ChatSessionWrapper> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/sessionAllLoad`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 会话节假休息日提醒消息查询
    */
    sessionHolidayNoWorkTip(): Promise<HolidayNoWorkTip> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/sessionHolidayNoWorkTip`).then((res:any) => res.data.data)
    },
    /**
    * 会话状态增量同步
    */
    sessionIncrLoad(params: { statusLogKid: string, userType: string }): Promise<ChatSessionWrapper> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/sessionIncrLoad`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 查询会话基本信息
    */
    sessionQuery(params: { queryType?: string, sessionId: string, sessionType: string, userType: string }): Promise<SessionStatus> {
      return httpGet(`/platform-im/v1.0/pt/customerApp/action/sessionQuery`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 回执全量会话同步状态
    */
    sessionReceiptAllLoad(): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/sessionReceiptAllLoad`).then((res:any) => res.data.data)
    },
    /**
    * 回执增量会话同步状态
    */
    sessionReceiptIncrLoad(): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/sessionReceiptIncrLoad`).then((res:any) => res.data.data)
    },
    /**
    * 更新ios推送的消息值
    */
    setIospushCount(request: ApnsPushCountUpdateDTO): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/set-iospush-count`, request).then((res:any) => res.data.data)
    },
    /**
    * 单向删除消息
    */
    sideRemoveMessage(body: VisibleMessageReq): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/sideRemoveMessage`, body).then((res:any) => res.data.data)
    },
    /**
    * 单向删除会话
    */
    sideRemoveSession(body: VisibleMessageReq): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/sideRemoveSession`, body).then((res:any) => res.data.data)
    },
    /**
    * 撤回消息
    */
    undoMessage(body: UndoMessageReq): Promise<UndoMessageResp> {
      return httpPost(`/platform-im/v1.0/pt/customerApp/action/undoMessage`, body).then((res:any) => res.data.data)
    },
  },
  imUserBlacks: {
    /**
    * 添加黑名单用户
    */
    add(request: BlackUserRequest): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/im-user-blacks/action/add`, request).then((res:any) => res.data.data)
    },
    /**
    * 判断指定用户是否被当前用户拉黑
    */
    isBlack(params: { toUserId: string }): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/pt/im-user-blacks/action/is-black`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 查询当前登录用户拉黑的用户列表
    */
    list(params: { pageNo: number, pageSize: number }): Promise<PageList<ImUserBlack>> {
      return httpGet(`/platform-im/v1.0/pt/im-user-blacks/action/list`,  {...params} ).then((res:any) => res.data.data)
    },
    /**
    * 删除黑名单用户
    */
    remove(request: BlackUserRequest): Promise<boolean> {
      return httpPost(`/platform-im/v1.0/pt/im-user-blacks/action/remove`, request).then((res:any) => res.data.data)
    },
  },
  liveTips: {
    /**
    * APP查询提示数据
    */
    list(): Promise<List<LiveTip>> {
      return httpGet(`/platform-im/v1.0/pt/live-tips/action/list`).then((res:any) => res.data.data)
    },
  },
  online: {
    /**
    * 查询30分钟在线用户
    */
    getAllPage(onlineSearchDTO: OnlineSearchDTO): Promise<Set<long>> {
      return httpPost(`/platform-im/v1.0/pt/online/action/get-all-page`, onlineSearchDTO).then((res:any) => res.data.data)
    },
    /**
    * 查询30分钟在线用户
    */
    getMapPage(onlineSearchDTO: OnlineSearchDTO): Promise<LinkedHashMap<long,boolean>> {
      return httpPost(`/platform-im/v1.0/pt/online/action/get-map-page`, onlineSearchDTO).then((res:any) => res.data.data)
    },
    /**
    * 小程序刷新用户在线时间
    */
    onlineRefresh(): Promise<boolean> {
      return httpGet(`/platform-im/v1.0/pt/online/action/onlineRefresh`).then((res:any) => res.data.data)
    },
  },
}